package cn.springcloud.fix.mybatis.starter;

import java.util.List;

public class ClassUtil {

    /**
     * 是否List的实现类
     */
    public static boolean isList(Class<?> clazz) {
        Class<?>[] interfaceClasses = clazz.getInterfaces();
        for (Class<?> interfaceClass : interfaceClasses) {
            if (interfaceClass.isAssignableFrom(List.class)) {
                return true;
            }
        }
        return false;
    }

    /**
     * 检查是否是基本数据类型（包括基本数据类型的包装类）
     * parameterObjectClass.isPrimitive() true表示是int,double,long等基本数据类型
     */
    public static boolean isBaseClass(Class<?> parameterObjectClass) {
        return parameterObjectClass.isPrimitive() ||
                parameterObjectClass.isAssignableFrom(Byte.class) ||
                parameterObjectClass.isAssignableFrom(Short.class) ||
                parameterObjectClass.isAssignableFrom(Integer.class) ||
                parameterObjectClass.isAssignableFrom(Long.class) ||
                parameterObjectClass.isAssignableFrom(Double.class) ||
                parameterObjectClass.isAssignableFrom(Float.class) ||
                parameterObjectClass.isAssignableFrom(Character.class) ||
                parameterObjectClass.isAssignableFrom(Boolean.class);
    }
}
